from collections import ChainMap

a = {'x': 1, 'z': 3 }
b = {'y': 2, 'z': 4 }

c = ChainMap(a, b)
print(c['x'])
print(c['y'])
print(c['z'])

#一个ChainMap 接受多个字典并将它们在逻辑上变为一个字典。然后，这些字典并
#不是真的合并在一起了， ChainMap 类只是在内部创建了一个容纳这些字典的列表并重
#新定义了一些常见的字典操作来遍历这个列表.
#如果出现重复键，那么第一次出现的映射值会被返回
#对于字典的更新或删除操作总是影响的是列表中第一个字典。
c['z'] = 10
c['w'] = 50

print(a)

#del c['y']
values = ChainMap()
values['x'] = 1
values = values.new_child()
values['x'] = 2
values = values.new_child()
values['x'] = 3
print(values)
print(values['x'])
vaules = values.parents
print(values)
print(values['x'])
values = values.parents
print(values['x'])
values = values.parents
print(values['x'])
